package cst.a126sx.recyclerviewdata126sx.activity;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;

import java.util.ArrayList;
import java.util.List;

import cst.a126sx.recyclerviewdata126sx.Fragment.AddressFragment;
import cst.a126sx.recyclerviewdata126sx.Fragment.FriendFragment;
import cst.a126sx.recyclerviewdata126sx.Fragment.SettingFragment;
import cst.a126sx.recyclerviewdata126sx.Fragment.WeixinFragment;
import cst.a126sx.recyclerviewdata126sx.R;


public class MainActivity extends AppCompatActivity {

    private LinearLayout layout1,layout2,layout3,layout4;
    private ImageButton ib1,ib2,ib3,ib4;
    private ViewPager vp;

    private List<Fragment> listFragment;
    private FragmentPagerAdapter fragmentPagerAdapter;


    View.OnClickListener onClickListener=new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            resetImage();
            switch (v.getId()) {
                case R.id.layout1:
                    selectTab(0);
                    break;
                case R.id.layout2:
                    selectTab(1);
                    break;
                case R.id.layout3:
                    selectTab(2);
                    break;
                case R.id.layout4:
                    selectTab(3);
                    break;
            }
        }
    };

    private void selectTab(int i) {
        switch (i){
            case 0:ib1.setImageResource(R.drawable.weixin_pressed);
                break;
            case 1:ib2.setImageResource(R.drawable.friend_pressed);
                break;
            case 2:ib3.setImageResource(R.drawable.address_pressed);
                break;
            case 3:ib4.setImageResource(R.drawable.settings_pressed);
                break;
        }
        vp.setCurrentItem(i);
    }

    private void resetImage() {
        ib1.setImageResource(R.drawable.weixin_normal);
        ib2.setImageResource(R.drawable.friend_normal);
        ib3.setImageResource(R.drawable.address_normal);
        ib4.setImageResource(R.drawable.settings_normal);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();

        layout1.setOnClickListener(onClickListener);
        layout2.setOnClickListener(onClickListener);
        layout3.setOnClickListener(onClickListener);
        layout4.setOnClickListener(onClickListener);

        initFragment();

    }

    private void initFragment() {
        listFragment=new ArrayList<Fragment>();
        listFragment.add(new WeixinFragment());
        listFragment.add(new FriendFragment());
        listFragment.add(new AddressFragment());
        listFragment.add(new SettingFragment());

        fragmentPagerAdapter=new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                return listFragment.get(position);
            }

            @Override
            public int getCount() {
                return listFragment.size();
            }
        };
        vp.setAdapter(fragmentPagerAdapter);
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                vp.setCurrentItem(position);
                resetImage();
                selectTab(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

    private void init() {
        layout1=(LinearLayout) findViewById(R.id.layout1);
        layout2=(LinearLayout)findViewById(R.id.layout2);
        layout3=(LinearLayout)findViewById(R.id.layout3);
        layout4=(LinearLayout)findViewById(R.id.layout4);
        ib1=(ImageButton)findViewById(R.id.imageButton1);
        ib2=(ImageButton)findViewById(R.id.imageButton2);
        ib3=(ImageButton)findViewById(R.id.imageButton3);
        ib4=(ImageButton)findViewById(R.id.imageButton4);
        vp=(ViewPager)findViewById(R.id.viewPager);
    }
}